Devices ranging from graphics cards to cloud computing servers executing virtual servers use computer readable storage media (CRSM) to store data. The CRSM may include random access memory (RAM), magnetic memory, optical memory, and so forth. Regardless of the physical format, such memory is finite. Blocks of memory may be designated as pages, and data stored within those pages. Pages may be dynamically allocated to different processes over time, to meet the changing needs of those processes.
Upon examining the memory contents of conventional systems, at various times the contents of many pages would be found to be identical. For example, on a server hosting hundreds of virtual instances of the same application, at a given time several users may be viewing the same bitmap of a splash screen resulting in that same bitmap being stored in hundreds of different memory pages. This duplication of identical data within the memory results in an undesirable increase in memory usage.